package main

import "fmt"

func main() {
	// 方法1，make初始化容量为5的一个map
	newMap := make(map[string]int, 5)
	fmt.Print(newMap) // map[]
	// 方法2，手动初始化一个空map
	var otherMap map[string]int
	fmt.Println(otherMap) // map[]
	// 方法3，创建一个map，并赋值
	givenMap := map[string]int{
		"a": 1,
		"b": 2,
		"c": 3,
	}
	fmt.Println(givenMap) // map[a:1 b:2 c:3]

	// 获取元素
	// 获取不存在的元素，则返回该类型的默认值
	v1 := givenMap["a"]
	fmt.Println(v1) // 1

	// 修改元素
	givenMap["a"] = 100
	fmt.Println(givenMap) // map[a:100 b:2 c:3]

	// 获取map长度
	fmt.Println(len(givenMap)) // 3

	// 遍历map
	for k, v := range givenMap {
		fmt.Println(k, v)
	}

	// 删除元素
	delete(givenMap, "a")

}
